
# 默认值参数 ：
"""
1. 在定义时给某个参数名设置一个默认值，若调用时不输入则就会走默认值。
2. 设置默认值的格式 ：key=value
3 . 默认值参数和位置参数可以共存 ，必须是默认值参数放在位置参数后面
"""

# 案例 ： 输出你正在学习的科目
def study_project(name,project_name='python'):
    # 使用%进行格式化
    print("%s正在学习%s" % (name,project_name))
    # 使用format()函数进行格式化
    print("{}正在学习{}".format(name,project_name))
    print("{n}正在学习{p}".format(n=name,p=project_name))
    print("{}正在学习{p}".format(name,p=project_name,))


study_project('张三','python')
study_project('李四','java')
study_project('王五')


# def study_project1(project_name='python',name):     # 错误的写法
#    print(name,'正在学习',project_name)


# 案例 ：12. 输入一行字符，分别统计出其中英文字母、空格、数字和其它字符的个数。
def str_stac(mystr):
    char = 0
    space = 0
    number = 0
    other = 0
    str_dict = {'char':char,'space':space,'number':number,'other':other}
    # 1. 循环这个字符串
    for x in mystr:
        # 2. 判断该字符是什么类型
        if x.isdigit():
            number += 1
            continue
        if x.isalpha():
            char += 1
            continue
        if x.isspace():
            space += 1
            continue
        other += 1
    # 3.统计
    # 字典更新
    str_dict['char'] = char
    str_dict['number'] = number
    str_dict['space'] = space
    str_dict['other'] = other
    return str_dict

print(str_stac("sjfsdjfsd$%^&*(fslk6768756446hfsdfhjsd  sffsdfds fsdkfjsf"))